package uri.model.member;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.StringTokenizer;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import uri.model.MemberVO;

@Service
public class MemberServiceImpl implements MemberService {
	@Resource(name="memberDAOImpl")
	private MemberDAO memberDAO;

	/**
	 * @author 김은호 
	 * @date 2014.06.23
	 * comment : 매개변수 memEmail, memPassword 를 받아서 
	 * 				  해당 회원정보를 찾은 후  mvo 로 반환
	 */
	public MemberVO login(MemberVO mvo){
		return memberDAO.login(mvo);
	}
	
	/**
	 *  @author 김은호 
	 *  @date 2014.06.23
	 *  comment : 매개 변수 mvo 로 회원정보를 받아 DB 에 저장하는 메서드
	 */
	public void registerMember(MemberVO mvo){
		memberDAO.registerMember(mvo);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.2
	 * comment : id 중복체크,  입력받은 id 와 동일한 id 가 없다면 0을 리턴
	 */
	public int idCheck(String id){
		return memberDAO.idCheck(id);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.24
	 * comment : 주민번호 중복체크, 입력받은 주민번호와 동일한 주민번호가 없다면 0을 리턴
	 */
	public int ssnCheck(String ssn){
		return memberDAO.ssnCheck(ssn);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.24
	 * comment : 매개변수 password 를 받아서 존재하는 비밀번호인지 확인
	 */
	public int checkPassword(String password){
		return memberDAO.checkPassword(password);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.25
	 * comment : 매개변수 mvo 를 받아서 회원삭제
	 */
	public void deleteMember(String id){
		memberDAO.deleteMember(id);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.25
	 * comment : 아이디, 주민번호, 포인트를 제외한 회원정보수정
	 */
	public void updateMemberInfo(MemberVO mvo){
		memberDAO.updateMemberInfo(mvo);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.25
	 * comment : 아이디를 매개변수로 받아서 비밀번호 찾기
	 */
	public String findPassword(String id){
		return memberDAO.findPassword(id);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.25
	 * comment : 주민번호를 매개변수로 받아서 아이디 찾기
	 */
	public String findId(String ssn){
		return memberDAO.findId(ssn);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.25
	 * comment : 새로운 비밀번호를 매개변수로 받아서 해당 회원의 비밀번호 수정
	 */
	public void updateMemberPassword(MemberVO mvo){
		memberDAO.updateMemberPassword(mvo);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.26
	 * comment : 전체 회원목록 보기
	 */
	public List<MemberVO> getAllMemberList(){
		return memberDAO.getAllMemberList();
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.26
	 * comment : 검색어와 검색어종류로 해당 정보 목록 보기
	 */
	public List<MemberVO> findMember(String selectType, String word) {
		HashMap<String,String> map=new HashMap<String,String>();
		map.put("selectType", selectType);
		map.put("word", word);
		return memberDAO.findMember(map);
	}
	
	/**
	 * @author 김은호 
	 * @date 2014.06.26
	 * comment : 선택한 회원 삭제
	 */
	public void removeMember(String mess){
		StringTokenizer st = new StringTokenizer(mess, " ");
		while (st.hasMoreTokens()) {
			String id= st.nextToken();
			System.out.println(id);
			memberDAO.removeMember(id);
		}
	}

	/**
	 * 작성자: 장해나
	 * 작성일: 07/08
	 * 아이디 찾기 시 비밀번호와 일치하는 아이디를 찾기 위한 메서드
	 */
	public String findIdCheck(MemberVO mvo) {
		return memberDAO.findIdCheck(mvo);
	}

	/**
	 * 작성자: 장해나
	 * 작성일: 07/09
	 * 비밀번호 찾기 시 주민번호와 일치하는 아이디를 찾기 위한 메서드
	 */
	public String findPasswordCheck(MemberVO mvo) {
		return memberDAO.findPasswordCheck(mvo);
	}

}
